%
% Author: Charlie Moore
%  Email: cmoore@nmt.edu
%   Date: May 4 2009
% 
\documentclass{beamer}

\usepackage{beamerthemesplit}
\setbeamertemplate{navigation symbols}{}

\title{CS 326 --- Software Engineering}
\subtitle{Titrator}
\author{Charlie Moore \and Aaron Lovato \and\\ Kesav Kancherla \and Tod Landis}
\date{\today}
\institute[NMT]{New Mexico Tech}

\begin{document}

\section{Introduction}
\frame{\titlepage}

\frame{\tableofcontents}

\frame{
  \frametitle{Introduction}
  
  \begin{itemize}
  \item Motivation for the project
    % Chem department needed a cross-platform, modern implementation
    % for one of their tools.
  \item What does Titrator do?
    % Titrator is a software package for modeling systems of
    % equilbrium reactions... define titration, etc.
  \item Why is it necessary?
    % Doing these equations by hand is tedious, and when a lot of
    % equilibria are involved, the complexity quickly renders hand
    % solving infeasible.
  \item Objectives
  \end{itemize}
}


\section{Design}
\frame{
  \frametitle{Design Considerations}

  \begin{itemize}
  \item Non-functional Requirements
  \item MVC architecture
    % Using the MVC architectural design pattern since it's uniquely
    % suited to a gui interface.  It fits our data exactly.  We have a
    % core model of our data, and many different views of that data.
  \item Layered subsystem architecture 
    % We built our model on existing java frameworks, and then built
    % our user facing program on top of the frameworks and model
  \item Black box testing
  \end{itemize}
}

\subsection{Non-functional Requirements}
\frame{
  \frametitle{Non-functional Requirements}

  \begin{itemize}
  \item Cross Platform
    % Fulfilled by using java -- talk about how OS X "thinks
    % different" XDD

  \item Localizable
    % Talk about how the software has been used in africa or whatever

  \item User friendly
    % Software should be learnable in one lab session and should be
    % intuitive for a chemistry student.  Needs to be easy to install
    % for the chem department.

  \item Modeling needs to complete in a reasonable amount of time
    % Define reasonable -- < 10 seconds?

  \item Reliable
    % The algorithm needs to be correct, and if the answer doesn't
    % converge, the user needs to be notified
  \end{itemize}
}

\subsection{Use Cases}
\frame{
  \frametitle{Use Cases}
  \begin{center}
    \includegraphics[width=2.7in]{UseCases.png}
  \end{center}
}

\subsection{Class Design}
\frame{
  \frametitle{Core Summary}
  \begin{center}
    \includegraphics[width=4in]{coresummary.png}
  \end{center}
}

\frame{
  \frametitle{Core Details --- Chemical System}

  \begin{center}
    \includegraphics[width=3in]{ChemicalSystemSummary.png}
  \end{center}
}

\frame{
%  \frametitle{Core Details --- Chemical System Zoom}
  \begin{center}
    \includegraphics[width=2.5in]{ChemicalSystem.png}
  \end{center}
}

\frame{
  \frametitle{Core Details --- System Controller}

  \begin{center}
    \includegraphics[width=2.8in]{SystemControllerSummary.png}
  \end{center}
}

\frame{
%  \frametitle{Core Details --- System Controller Zoom}
  \begin{center}
    \includegraphics[width=2.5in]{SystemController.png}
  \end{center}
}

\frame{
  \frametitle{GUI Summary}
  \begin{center}
    \includegraphics[width=4.5in]{guisummary.png}
  \end{center}
}


\subsection{Subsystem Design}
\frame{
  \frametitle{Subsystem Design}
  \begin{center}
    \includegraphics[width=4in]{../design/SubsystemDiagram.png}
  \end{center}
}

\subsection{Architecture Design}
\frame{
  \frametitle{MVC Architecture}
  % Talk about how MVC was perfect for our project and how we
  % ruled out the other architectural patterns like tiered and
  % repository
  \begin{center}
  {\small{http://java.sun.com/developer/technicalArticles/javase/mvc/}}
    \includegraphics[width=3.7in]{mvcdiagram.jpg}
  \end{center}

}

\frame{
  \frametitle{Deployment Diagram}
  \begin{center}
    \includegraphics[width=4in]{../design/DeploymentDiagram.png}
  \end{center}
}


\section{Demonstration}
\frame{
  \frametitle{Demonstration}
  \begin{center}
    A quick demo\dots
  \end{center}
}


\section{Testing}
\frame{
  \frametitle{Testing Strategy}
  \begin{itemize}
  \item Unit testing in the core
  \item Big Bang integration testing
  \item Ongoing user testing
    % Scheduled time for a real live chem lab session, etc

  \end{itemize}
}

\section{Conclusion}
\frame{
  \frametitle{Lessons learned}

  \begin{itemize}
    % Each one of us should fill out at least one
  \item Nothing turns out as planned.
  \item Use real debugging messages.
  \item Apple thinks different.
  \end{itemize}
}

\frame{
  \begin{center}
    \Large{Questions?}
  \end{center}
}

\end{document}
